package com.itlong.cloud.sdk.dao;

import com.itlong.cloud.POJO.PO.ProjectPO;
import com.itlong.cloud.abstracts.IAbstractBaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;


/**
 * <desc>
 *      SDK项目持久层
 * </desc>
 *
 * @createDate 2017/10/31
 */
@Mapper
@Repository
public interface ISDKServerOldProjectDao extends IAbstractBaseDao<ProjectPO> {

    /**
     * <desc>
     *      根据自定义参数查询项目
     * <desc/>
     * @param  params   查询参数集
     * @return  List<ProjectPO>  返回PO对象集
     * @author Biao.R
     * @createDate 2017/10/31
     */
    List<ProjectPO> getByParamMap(Map<String, Object> params);

    /**
     * <desc>
     *      查找以beginStr开头的最大项目编号
     * <desc/>
     * @param   beginStr 查询的起始字符串
     * @return  String  返回的项目编号
     * @author Biao.R
     * @createDate 2017/10/31
     */
    Integer getMaxId(@Param("beginStr") String beginStr);

    /**
     * <desc>
     *      保存
     * <desc/>
     * @param  map 对象转换后的集合
     * @return
     * @author Biao.R
     * @createDate 2017/10/31
     */
    Integer save(Map<String,Object> map);

    /**
     * <desc>
     *      查询独立开发者所管辖的项目信息
     * <desc/>
     * @param   propertyRoleProjectPO 独立开发者PO对象
     * @return  List<ProjectPO> 查询出的项目信息结果集
     * @author Biao.R
     * @createDate 2017/11/3
     */
    List<ProjectPO> getDeveloperProjects(Map<String, Object> propertyRoleProjectPO);

    /**
     * <desc>
     *      根据项目ID查询单个项目
     * <desc/>
     * @param  projectId  待查询项目ID
     * @return  ProjectPO  返回对象
     * @author Biao.R
     * @createDate 2017/11/9
     */
    ProjectPO getByProjectId(@Param("projectId") String projectId);

}
